/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#ifndef LAUNCHER_H
#define LAUNCHER_H

#define LAUNCHER_AFFINITY_MASK_CPU_0			0x00000001
#define LAUNCHER_AFFINITY_MASK_CPU_1			0x00000002
#define LAUNCHER_AFFINITY_MASK_CPU_ALL			0x00000003

#define LAUNCHER_PRIORITY_CLASS_REALTIME		0x00000100
#define LAUNCHER_PRIORITY_CLASS_HIGH			0x00000080
#define LAUNCHER_PRIORITY_CLASS_ABOVE_NORMAL	0x00008000
#define LAUNCHER_PRIORITY_CLASS_NORMAL			0x00000020
#define LAUNCHER_PRIORITY_CLASS_BELOW_NORMAL	0x00004000
#define LAUNCHER_PRIORITY_CLASS_LOW				0x00000040

#include "Common.h"

namespace Launcher
{
	bool Launch( __in const std::string GameLauncherPath,
				 __in const DWORD PriorityClass,
				 __in const DWORD AffinityMask,
				 __in const bool AutoClickGameLauncherPlayButton );
	bool ChangeProcessAffinityMask( __in HANDLE ProcessHandle, __in const DWORD AffinityMask );
	void AutoClickPlayButton( bool Enable );
};

#endif // LAUNCHER_H